#include "UInt8.h"

UInt8::UInt8(unsigned char valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

UInt8::UInt8(string valor) {
    this->_valor = atoi(valor.c_str());
    this->_punteroADato = &_valor;
}

UInt8::UInt8(void* punteroADato){
    this->_punteroADato = punteroADato;
}

void UInt8::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    unsigned char* otroValor = (unsigned char*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << (unsigned int) _valor << " y se obtuvo " << (unsigned int)*otroValor << " . Diferencia: " << (unsigned int)(_valor - (*otroValor)) << endl;
}

unsigned char UInt8::dameValor() {
    return this->_valor;
}

ClaseDeDato UInt8::getClass() {
    return C_U_INTEGER_8;
}
